package JAVA300.第十二章网络编程;

import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.DataInputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**
 * 接收端--传输基本类型
 * 1.使用DatagramSocket创建接收端，指定端口
 * 2，准备容器封装成DatagramPacket包裹
 * 3.阻塞式接收方法 receive
 * 4.分析数据 getData（），getlength()--
        字节数组还原为基本类型
 * 5.释放资源
 */
public class web04_UDP2_Server {
    public static void main(String[] args) throws Exception {
        System.out.println("接收端正在接受。。。。");
        // 1.使用DatagramSocket创建接收端，指定端口---
        // //同一台电脑上端口不要和发送端冲突Address already in use: Cannot bind
        DatagramSocket server = new DatagramSocket(9999);

        //2，准备容器封装成DatagramPacket包裹
        byte[] container = new byte[1024*60];//最多60k
        DatagramPacket packet = new DatagramPacket(container,0,container.length);
         // 3.阻塞式接收方法 receive
        server.receive(packet);

        //4.分析数据 getData（），getlength()--返回字节数组 byte[]
        byte[] datas = packet.getData();

        //*****************数据还原操作***********************
        DataInputStream dis = new DataInputStream(new BufferedInputStream(new ByteArrayInputStream(datas)));

        String msg = dis.readUTF();
        System.out.println(msg);//还原成字符串

        //5.释放资源
        server.close();
    }
}
